﻿#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//int main()
//{
//	int num1 = -3;
//	int num2 = 5;
//	// 10000000000000000000000000000011->11111111111111111111111111111101
//	//00000000000000000000000000000101->00000000000000000000000000000101->00000000000000000000000000000101
//	printf("%d\n", num1 & num2);
//	//11111111111111111111111111111101
//	//00000000000000000000000000000101->11111111111111111111111111111101->10000000000000000000000000000011
//	printf("%d\n", num1 | num2);
//	//11111111111111111111111111111101
//	//00000000000000000000000000000101->11111111111111111111111111111000->10000000000000000000000000001000
//	printf("%d\n", num1 ^ num2);
//	//11111111111111111111111111111111->00000000000000000000000000000000->00000000000000000000000000000001
//	printf("%d\n", ~0);
//	return 0;
//}


//编写代码实现：求⼀个整数存储在内存中的⼆进制中1的个数
//方法一：无法计算负数
//int main()
//{
//	int n = 0;
//	int count = 0;
//	scanf("%d", &n);
//	while (n)
//	{
//		if (n % 2 == 1)
//		{
//			count++;
//		}
//		n /= 2;
//	}
//	printf("%d", count);
//	//00000000 00000000 0000000 00000100
//	return 0;
//}

//方法二:需要执行32次，比较麻烦
//int main()
//{
//	int n = 0;
//	int i = 0;
//	int count = 0;
//	scanf("%d", &n);
//	for (i = 0; i < 32; i++)
//	{
//		if ((n>>i & 1) == 1)
//		{
//			count++;
//		}
//
//	}
//	printf("%d", count);
//}

//方法三：比较难想 可以类比九连环
//int main()
//{
//	int n = 0;
//	int count = 0;
//	scanf("%d", &n);
//	while (n)
//	{
//		count++;
//		n = n & (n - 1);
//
//	}
//	printf("%d", count);
//}

//10000000000000000000000000000101
//11111111111111111111111111111010
//11111111111111111111111111111011
//00000000000000000000000000000011 00000000000000000000000000001001
//0101 1100
//0100

////单身狗1
//int main()
//{
//	int arr[] = { 0,2,4,5,6,7,7,2,4,5 };
//	int i = 0;
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	int j = 0;
//	for (i = 0; i < sz; i++)
//	{
//		int flag = 0;
//		for (j = 0; j < sz; j++)
//		{
//			if (i != j)
//			{
//				if (arr[i] == arr[j])
//				{
//					flag = 1;
//					break;
//				}
//			}
//		}
//		if (flag == 0)
//		{
//			printf("%d ",arr[i]);
//		}
//	}
//	return 0;
//}

//不用第三个变量交换两个数
//int main()
//{
//	int a = 9;
//	int b = 0;
//	a = a ^ b;
//	b = a ^ b;
//	a = a ^ b;
//	printf("%d %d", a, b);
//	return 0;
//}

//int main()
//{
//    int n = 0;
//    int count = 0;
//    scanf("%d", &n);
//    while (n)
//    {
//        count++;
//        n = n & (n - 1);
//    }
//    printf("%d", count);
//    return 0;
//}
//

//int main()
//{
//    int i = 0;
//    int n = 0;
//    scanf("%d", &n);
//    for (i = 0; i < 16; i++)
//    {
//        if ((n & (1 << 2*i)) != 0)
//        {
//            printf("%d", 1);
//        }
//        else
//        {
//            printf("%d", 0);
//        }
//    }
//    printf("\n");
//    for (i = 0; i < 16; i++)
//    {
//        if ((n & (2 << 2*i)) != 0)
//        {
//            printf("%d", 1);
//        }
//        else
//        {
//            printf("%d", 0);
//        }
//    }
//    return 0;
//}3
//    111111111111111111111111111111111111
//-3->100000000000000000000000000000000011
//    111111111111111111111111111111111101
// 22 0001 0110
// 33 0010 0001



//10 10 10 10
//int main()
//{
//	int arr[10] = { 0 };
//	int* pc = arr;
//	int i = 0;
//	for (i = 0; i < 12; i++)
//	{
//		*(pc + i) = 1;
//	}
//	return 0;
//
//}

//int main()
//{
//	int a = 9;
//	int b = 8;
//	a = a ^ b;
//	b = a ^ b;
//	a = a ^ b;
//	printf("%d %d", a, b);
//	return 0;
//}
//int main()
//{
//	int count = 0;
//	int n = 0;
//	scanf("%d", &n);
//	while (n)
//	{
//		if (n % 2 == 1)
//			count++;
//		n /= 2;
//	}
//	printf("%d", count);
//	return 0;
//
//}

//int main()
//{
//	int i = 0;
//	int count = 0;
//	int n = 0;
//	scanf("%d", &n);
//	//遍历整数的每个二进制位（32位机器为例）
//	for (i = 0; i < 32; i++)
//	{
//		if ((n >> i))
//		{
//			count++;
//		}
//	}
//	printf("%d", count);
//	return 0;
//
//}
//int main()
//{
//	int i = 0;
//	int count = 0;
//	int n = 0;
//	scanf("%d", &n);
//
//	while (n)
//	{
//		count++;
//		n = n & (n - 1);
//	}
//	printf("%d", count);
//	return 0;
//
//}

//#include<stdio.h>
//int main(void)
//{
//	/*********Begin*********/
//
//
//	int score = 0;
//	scanf("%d", &score);
//	int level = 0;
//	if (score & (1 << 31))
//	{
//		level = -1;
//	}
//	else
//	{
//		level = score / 10;
//	}
//	switch (level)
//	{
//	case 10:
//	case 9:
//		printf("A");
//		break;
//
//	case 8:
//		printf("B");
//		break;
//
//	case 7:
//		printf("C");
//		break;
//	case 6:
//	case 5:
//	case 4:
//	case 3:
//	case 2:
//	case 1:
//	case 0:
//		printf("E");
//		break;
//	default:
//		printf("Score is error!");
//		break;
//	}
//
//
//	/*********End**********/
//	return 0;
//}
//#include <stdio.h>
//
//#include <stdio.h>
//
//int main()
//{
//    int i = 0;
//    int j = 0;
//    int n = 0;
//    int o = 0;
//    int line = 0;
//    scanf("%d", &n);
//    for (i = 0; i < n; i++)
//    {
//        for (j = 0; j < 3; j++)
//        {
//            for (int o = 0; o < 3 * n - line - 1; o++)
//            {
//                printf(" ");
//            }
//            for (int m = 0; m < i + 1; m++)
//            {
//                for (o = 0; o < j + 1; o++)
//                {
//                    printf("* ");
//                }
//                for (o = 0; o < 4 - 2 * j; o++)
//                {
//                    printf(" ");
//                }
//            }
//            printf("\n");
//
//            line++;
//        }
//    }
//    for (i = 0; i < n; i++)
//    {
//        for (j = 0; j < 3 * n - 1; j++)
//        {
//            printf(" ");
//        }
//        printf("*");
//        printf("\n");
//    }
//}